/*
 * Шаблон Iterator (также известный как Cursor) — Шаблон проектирования, 
 * относится к паттернам поведения. Представляет собой объект, позволяющий 
 * получить последовательный доступ к элементам объекта-агрегата без 
 * использования описаний каждого из объектов, входящий в состав агрегации.
 */
package patterns;


//import com.mysql.jdbc.Connection;
//import com.mysql.jdbc.PreparedStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

public class PersonDao {
    private static final String SQL = "SELECT name, age FROM Persons";
    public List<Person1> allPersons() throws Exception {
        Class.forName("com.mysql.jdbc.Driver");
        Connection conn = (Connection) DriverManager.getConnection(
                "jdbc:mysql://localhost/testdb", "user", "password");
        PreparedStatement stmt = (PreparedStatement) conn.prepareStatement(SQL);
        ResultSet rs = stmt.executeQuery();
        ArrayList<Person1> result = new ArrayList<Person1>();
        while (rs.next()) {
            String name = rs.getString("name");
            int age = rs.getInt("age");
            result.add(new Person1(name, age));
        }
        return result;
    }     
}

class Person1 {
    private String name;
    private int age;

    Person1(String name, int age) {
        this.name = name;
        this.age = age;
    }
}
